perm filename NOISP[2,LCS] blob sn#153766 filedate 1975-04-04 generic text, type T, neo UTF8
00010	SRATE←20830;MAG←512/SRATE;SPEED←13;
00100	COMPILE;INSTRUMENT NOISE;
00200	OSCIL[25](P4,25*MAG/P2,P5);<ENVELOPE
00300	RANDH(P7*MAG,P8*MAG);<P7=BAND WIDTH, P8=RATE
00350	<FOR NOISE MAKE P7=P3, P8=4*P3
00400	OSCIL(U1,P3*MAG+U2,P6);
00500	OUTA←OUTA+U3;END;FINISH;
00600	
00700	ARRAY F3,F2(512);
00750	SEG(F3);0 1 1  3 .2 40 .05 70 0 100;
00800	SEG(F2);0 1   1 12  1 66  0 100;
00802	SYNTH(F1);1 1 3 .2 4 .1 999;
00805	SEG(F4);0 0  1 100;
00810	RCDFLG=0;
00900	PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P3*4 ;FINISH;
01000	
01100	
02000	QQQ     ;  FILE NOISX
02100	NOISE ;
02200	P2 .5;
02300	P3 NO/PC6/E/G/BF/CS6/FINE*;
02400	P4 1500;
02500	P5 F1;
02600	P6 F2;
02700	P7 P3;
02800	P8 4000;
02900	END;
03000	RUN;
03100	
03200	
04000	SRATE←20830;MAG←512/SRATE;SPEED←13;  < FILE NOIS2
04100	COMPILE;INSTRUMENT NOISE;
04200	OSCIL[25](P4,25*MAG/P2,P5);<ENVELOPE
04300	OSCIL [25] (P7*MAG, 25*MAG/P9, P10); <CHNGS BAND WIDTH
04400	RANDH(U2, P8*MAG);<P7=BAND WIDTH,  P8=RATE
04500	<FOR NOISE MAKE P7=P3, P8=4*P3
04600	OSCIL(U1, P3*MAG+U3, P6);
04700	OUTA←OUTA+U4;END;FINISH;
04800	
04900	ARRAY F3,F2(512);
05000	SEG(F3);0 1   1 3   .2 40   .05 70   0 100;
05100	SEG(F2);0 1   1 12   1 66   0 100; <ENVELOPE
05200	SYNTH(F1);1 1   3 .2   4 .1   999;  <TONE
05300	SEG(F4);0 1   1 100;  <RAMP UP
05400	RCDFLG=0;
05500	PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P3*4  P2 F4;FINISH;
05600	
05700	
08000	SRATE←20830;MAG←512/SRATE;SPEED←13;   <FILE NOIS3
08100	COMPILE;INSTRUMENT NOISE;
08200	OSCIL [25] (P4, 25*MAG/P2, P5);<ENVELOPE
08300	EXPEN [25] (P7*MAG, 25*MAG/P9, P10); <CHNGS BAND WIDTH
08400	RANDH(U2, P8*MAG);<P7=BAND WIDTH,  P8=RATE
08500	<FOR NOISE MAKE P7=P3, P8=4*P3
08600	OSCIL(U1, P3*MAG+U3, P6);
08700	OUTA←OUTA+U4;END;FINISH;
08800	
08900	ARRAY F3,F2(512);
09000	SEG(F3);0 1   1 3   .2 40   .05 70   0 100;
09100	SEG(F2);0 1   1 12  1 66  0 100; <ENVELOPE
09200	SYNTH(F1);1 1   3 .2   4 .1   999;  <TONE
09300	SEG(F4);1 1   0 100;  <RAMP DOWN
09400	RCDFLG=0;
09500	PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P3*4  P2/2 F4;FINISH;
09600	
09700	
10000	SRATE←20830;MAG←512/SRATE;SPEED←13;   < NOIS4
10100	COMPILE;INSTRUMENT NOISE;
10200	OSCIL[25](P4,25*MAG/P2,P5);<ENVELOPE
10300	OSCIL  (P10*MAG, MAG/P8, P9);
10400	RANDI( P7*MAG, U2);
10500	OSCIL(U1, P3*MAG+U3, P6);
10600	OUTA←OUTA+U4;END;FINISH;
10700	
10800	SEG(F3);0 1   1 3   .2 40   .05 70   0 100;
10900	SEG(F2);0 1   1 12   1 90   0 100; <ENVELOPE
11000	SYNTH(F1);1 1   3 .2   4 .1   999;  <TONE
11100	SEG(F4);0 1  .2 25  1 40  .3 55   0 100;  <UP DOWN
11200	RCDFLG=0;
11300	PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P2 F4 200;FINISH;
11400	
11500	
20000	QQQ    FILE=PHRAS    
20100	CLAR 0 20  ALL;
20200	P2 .05/ P3 MOV/ 2 C1,B4 C1,B4/ 13 C1,E5  C2,B5/ 5 C2,B5  C1,G6*/ P4 200;
20300	P5 F1 /P7 F4 / P10 1;
20400	P12 MOV/ 20  2 8.99*; CHANGES FOR PHRASE NOTE #2.
20500	P13 SUBN NUM/ -1/ -2 *; LAST NOTE WILL GO DOWN 1 OR 2.
20600	P6 MO/10 18 5/ 10 8 18*;
20700	END;
20800	
20900	BRIT  ;
21000	DUPL 1;
21100	P2 .07;
21200	P3 1 C2 C5;
21300	P8 F5;
21400	P12 MOV/ 10  -10,2/ 10  2,-10*; SETS 2ND NOTE OF PHRASE
21500	P13 SUBN NUM/ 1 / -2 / 5*; FOR THIRD NOTE OF PHRASE.
21600	END;
21700	
21800	C******* PHRAS.F4 ****  CREATES RANDOM 3-NOTE PHRASES.
21900	
22000	C WHEN INS.1 HITS ANY NOTE ABOVE B4 A 3-NOTE PHRASE WILL BEGIN
22100	C WITH INTERVALS SET IN INS.1'S P12 AND P13.  DURATIONS OF NOTES
22200	C WILL TRIPLE, ALSO THE AMPLITUDE INCREASES BY 4X.  
22300	C AFTER EACH PHRASE THERE WILL BE A GAP OF 10 NOTES AT LEAST
22400	C BEFORE THE NEXT ONE.
22500	
22600	C AS INS.1 ENDS A PHRASE INS.2 WILL ALSO START ONE FROM HIS CURRENT
22700	C NOTE -BUT WITH HIS OWN INTERVALS(SET IN P12, P13) AND WITH DURATIONS
22800	C MULTIPLIED BY 5.  IF INS.2 ENDS A PHRASE WHILE INS.1 IS PLAYING
22900	C ONE, INS.2 IMMEDIATELY STARTS ANOTHER.
23000	
23100	C IF TOTAL TIME IS UP IN MIDDLE OF A PHRASE, IT WILL BE EXTENDED
23200	C SO THE LAST PHRASE MAY FINISH.
23300	
23400		SUBROUTINE SUBR
23500	 	COMMON /INS/ INST(27),BG(60)
23600		COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
23700	C   INST=INSTRUMENT NAME,  BG=BEGIN TIME OF EACH INST.
23800	C   INUM=INST#  IPAR=PARAM#  BT=BASIC TIME P1  WHEN SUBROUTINE IS
23900	C   CALLED, IF IREST IS <0, THAT NOTE WILL BE A REST.
24000	C   DUR=FINAL DURATION OF EACH INST.  IF DUR IS IN TERMS OF A
24100	C   NUMBER OF NOTES(NOT TIME) THE DUR NUMBER WILL BE
24200	C   10000+THE NUMBER OF NOTES.
24300	
24400	C   NOTE #S IN SUBROUTINE: (1-84)  C4=37  FS4=43  C5=49  F1=86
24500	C   F15=100 (NO F16!)
24600	
24700	
24800	
24900		GO TO (1,2),INUM
25000	
25100	1	IF(CNT(1).GT.1)GO TO 3
25200		J=0
25300		K=0
25400	C INITIALIZE THE COUNTERS
25500	
25600	3	X=3
25700		AMP=4
25800	C  THE P2 AND P4 MULTIPLIERS
25900	
26000		M=M-1
26100	C COUNTER TO CAUSE GAP OF NUMB. OF NOTES SET IN P6.
26200	
26300		IF(J.NE.0)GO TO 4
26400	C  JUMP IF IN MIDDLE OF PHRASE.
26500		N1=P(3)
26600	C PICKUP INTEGER PITCH NUMB.
26700	
26800		IF(N1.LT.49.OR.M.GE.0)RETURN
26900	C START A PHRASE ONLY IF THE NOTE IS HIGHER THAN B4 AND GAP FINISHED.
27000	
27100		J=1
27200	C  START THE COUNTER
27300	
27400	7	IF(DUR(INUM).LT.P(1)+P(2)*X*3)DUR(INUM)=P(1)+P(2)*X*3-.001
27500	C  EXTENDS DURATION SO A PHRASE MAY FINISH AT END.
27600	
27700		P(5)=95
27800	C ATTACK OF PHRASE -- F10
27900	
28000	6	P(4)=P(4)*AMP
28100	C  MAKE IT AUDIBLE
28200	
28300		P(2)=P(2)*X
28400	C STRETCH THE NOTE DURATION.
28500		RETURN
28600	
28700	4	IF(J.EQ.2)GO TO 5
28800	C JUMP IF END OF PHRASE
28900		J=2
29000	C  UPDATE COUNTER
29100	
29200		P(3)=P(12)+N1
29300	C  SET SECOND NOTE OF PHRASE.
29400	
29500	8	P(5)=96
29600	C  ENV. FOR MIDDLE OF PHRASE -- F11
29700		GO TO 6
29800	
29900	5	P(3)=P(13)+N1
30000	C SET LAST NOTE OF PHRASE
30100		J=0
30200	C  RESET THE COUNTER
30300	
30400		IF(K.EQ.0)K=1
30500	C  START CONTER FOR SECOND INST. IF HE'S NOT BUSY
30600	
30700		M=P(6)
30800	C  SET GAP COUNTER - FIND IT IN P6
30900	
31000	9	P(5)=97
31100	C ENV. FOR END OF PHRASE -- F12
31200	
31300		GO TO 6
31400	
31500	C**** NEXT FOR INST. 2
31600	2	IF(K.EQ.0)RETURN
31700	C RETURN IF NO PHRASE GOING ON IN EITHER INST.
31800	
31900		K=K+1
32000	C  UPDATE THE COUNTER
32100	
32200		X=5
32300		AMP=5
32400	C P2 AND P4 MULTIPLIERS. (5 TIMES THE NORMAL DURATION.)
32500	
32600		GO TO (11,12,13),K-1
32700	11	N2=P(3)
32800	C  GET PITCH FOR START OF PHRASE.
32900		GO TO 7
33000	C  GO DO OTHER NECESSARY THINGS
33100	
33200	12	P(3)=P(12)+N2
33300	C  SET SECOND NOTE OF PHRASE
33400		GO TO 8
33500	C  GO DO OTHER NECESSARY THINGS
33600	
33700	13	P(3)=P(13)+N2
33800	C LAST NOTE OF PHRASE.
33900	
34000		K=0
34100	C  RESET COUNTER
34200		GO TO 9
34300		END
34400